/*==============================================================*/
/* DBMS name:      Microsoft SQL Server 2012                    */
/* Created on:     25-11-2013 4:30:35                           */
/*==============================================================*/


if exists (select 1
   from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
   where r.fkeyid = object_id('CATEGORIADELAINCIDENCIA') and o.name = 'FK_CATEGORI_CATEGORIA_INCIDENC')
alter table CATEGORIADELAINCIDENCIA
   drop constraint FK_CATEGORI_CATEGORIA_INCIDENC
go

if exists (select 1
   from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
   where r.fkeyid = object_id('CATEGORIADELAINCIDENCIA') and o.name = 'FK_CATEGORI_CATEGORIA_CATEGORI')
alter table CATEGORIADELAINCIDENCIA
   drop constraint FK_CATEGORI_CATEGORIA_CATEGORI
go

if exists (select 1
   from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
   where r.fkeyid = object_id('COMENTARIOINCIDENCIA') and o.name = 'FK_COMENTAR_COMENTARI_INCIDENC')
alter table COMENTARIOINCIDENCIA
   drop constraint FK_COMENTAR_COMENTARI_INCIDENC
go

if exists (select 1
   from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
   where r.fkeyid = object_id('COMENTARIOINCIDENCIA') and o.name = 'FK_COMENTAR_CREADORCO_USUARIO')
alter table COMENTARIOINCIDENCIA
   drop constraint FK_COMENTAR_CREADORCO_USUARIO
go

if exists (select 1
   from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
   where r.fkeyid = object_id('INCIDENCIA') and o.name = 'FK_INCIDENC_ESTADODEI_ESTADOIN')
alter table INCIDENCIA
   drop constraint FK_INCIDENC_ESTADODEI_ESTADOIN
go

if exists (select 1
   from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
   where r.fkeyid = object_id('INCIDENCIA') and o.name = 'FK_INCIDENC_INCIDENCI_PROYECTO')
alter table INCIDENCIA
   drop constraint FK_INCIDENC_INCIDENCI_PROYECTO
go

if exists (select 1
   from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
   where r.fkeyid = object_id('INCIDENCIA') and o.name = 'FK_INCIDENC_REPORTEIN_USUARIO')
alter table INCIDENCIA
   drop constraint FK_INCIDENC_REPORTEIN_USUARIO
go

if exists (select 1
   from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
   where r.fkeyid = object_id('INCIDENCIA') and o.name = 'FK_INCIDENC_RESPONSAB_USUARIO')
alter table INCIDENCIA
   drop constraint FK_INCIDENC_RESPONSAB_USUARIO
go

if exists (select 1
   from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
   where r.fkeyid = object_id('PROYECTO') and o.name = 'FK_PROYECTO_SUBPROYEC_PROYECTO')
alter table PROYECTO
   drop constraint FK_PROYECTO_SUBPROYEC_PROYECTO
go

if exists (select 1
   from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
   where r.fkeyid = object_id('ROL') and o.name = 'FK_ROL_PERMISOSD_PERMISO')
alter table ROL
   drop constraint FK_ROL_PERMISOSD_PERMISO
go

if exists (select 1
   from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
   where r.fkeyid = object_id('USUARIOSPROYECTO') and o.name = 'FK_USUARIOS_USUARIOSP_ROL')
alter table USUARIOSPROYECTO
   drop constraint FK_USUARIOS_USUARIOSP_ROL
go

if exists (select 1
   from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
   where r.fkeyid = object_id('USUARIOSPROYECTO') and o.name = 'FK_USUARIOS_USUARIOSP_PROYECTO')
alter table USUARIOSPROYECTO
   drop constraint FK_USUARIOS_USUARIOSP_PROYECTO
go

if exists (select 1
   from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
   where r.fkeyid = object_id('USUARIOSPROYECTO') and o.name = 'FK_USUARIOS_USUARIOSP_USUARIO')
alter table USUARIOSPROYECTO
   drop constraint FK_USUARIOS_USUARIOSP_USUARIO
go

if exists (select 1
            from  sysindexes
           where  id    = object_id('CATEGORIADELAINCIDENCIA')
            and   name  = 'CATEGORIAINCIDENCIA_FK'
            and   indid > 0
            and   indid < 255)
   drop index CATEGORIADELAINCIDENCIA.CATEGORIAINCIDENCIA_FK
go

if exists (select 1
            from  sysindexes
           where  id    = object_id('CATEGORIADELAINCIDENCIA')
            and   name  = 'CATEGORIAINCIDENCIA2_FK'
            and   indid > 0
            and   indid < 255)
   drop index CATEGORIADELAINCIDENCIA.CATEGORIAINCIDENCIA2_FK
go

if exists (select 1
            from  sysobjects
           where  id = object_id('CATEGORIADELAINCIDENCIA')
            and   type = 'U')
   drop table CATEGORIADELAINCIDENCIA
go

if exists (select 1
            from  sysobjects
           where  id = object_id('CATEGORIAINCIDENCIA')
            and   type = 'U')
   drop table CATEGORIAINCIDENCIA
go

if exists (select 1
            from  sysindexes
           where  id    = object_id('COMENTARIOINCIDENCIA')
            and   name  = 'CREADORCOMENTARIO_FK'
            and   indid > 0
            and   indid < 255)
   drop index COMENTARIOINCIDENCIA.CREADORCOMENTARIO_FK
go

if exists (select 1
            from  sysindexes
           where  id    = object_id('COMENTARIOINCIDENCIA')
            and   name  = 'COMENTARIO_INCIDENCIA_FK'
            and   indid > 0
            and   indid < 255)
   drop index COMENTARIOINCIDENCIA.COMENTARIO_INCIDENCIA_FK
go

if exists (select 1
            from  sysobjects
           where  id = object_id('COMENTARIOINCIDENCIA')
            and   type = 'U')
   drop table COMENTARIOINCIDENCIA
go

if exists (select 1
            from  sysobjects
           where  id = object_id('ESTADOINCIDENCIA')
            and   type = 'U')
   drop table ESTADOINCIDENCIA
go

if exists (select 1
            from  sysindexes
           where  id    = object_id('INCIDENCIA')
            and   name  = 'REPORTEINCIDENCIA_FK'
            and   indid > 0
            and   indid < 255)
   drop index INCIDENCIA.REPORTEINCIDENCIA_FK
go

if exists (select 1
            from  sysindexes
           where  id    = object_id('INCIDENCIA')
            and   name  = 'INCIDENCIA_PROYECTO_FK'
            and   indid > 0
            and   indid < 255)
   drop index INCIDENCIA.INCIDENCIA_PROYECTO_FK
go

if exists (select 1
            from  sysindexes
           where  id    = object_id('INCIDENCIA')
            and   name  = 'RESPONSABLILIDADINCIDENCIA_FK'
            and   indid > 0
            and   indid < 255)
   drop index INCIDENCIA.RESPONSABLILIDADINCIDENCIA_FK
go

if exists (select 1
            from  sysindexes
           where  id    = object_id('INCIDENCIA')
            and   name  = 'ESTADODEINCIDENCIA_FK'
            and   indid > 0
            and   indid < 255)
   drop index INCIDENCIA.ESTADODEINCIDENCIA_FK
go

if exists (select 1
            from  sysobjects
           where  id = object_id('INCIDENCIA')
            and   type = 'U')
   drop table INCIDENCIA
go

if exists (select 1
            from  sysobjects
           where  id = object_id('PERMISO')
            and   type = 'U')
   drop table PERMISO
go

if exists (select 1
            from  sysindexes
           where  id    = object_id('PROYECTO')
            and   name  = 'SUBPROYECTO_FK'
            and   indid > 0
            and   indid < 255)
   drop index PROYECTO.SUBPROYECTO_FK
go

if exists (select 1
            from  sysobjects
           where  id = object_id('PROYECTO')
            and   type = 'U')
   drop table PROYECTO
go

if exists (select 1
            from  sysindexes
           where  id    = object_id('ROL')
            and   name  = 'PERMISOSDEROL_FK'
            and   indid > 0
            and   indid < 255)
   drop index ROL.PERMISOSDEROL_FK
go

if exists (select 1
            from  sysobjects
           where  id = object_id('ROL')
            and   type = 'U')
   drop table ROL
go

if exists (select 1
            from  sysobjects
           where  id = object_id('USUARIO')
            and   type = 'U')
   drop table USUARIO
go

if exists (select 1
            from  sysindexes
           where  id    = object_id('USUARIOSPROYECTO')
            and   name  = 'USUARIOSPROYECTO_FK'
            and   indid > 0
            and   indid < 255)
   drop index USUARIOSPROYECTO.USUARIOSPROYECTO_FK
go

if exists (select 1
            from  sysindexes
           where  id    = object_id('USUARIOSPROYECTO')
            and   name  = 'USUARIOSPROYECTO3_FK'
            and   indid > 0
            and   indid < 255)
   drop index USUARIOSPROYECTO.USUARIOSPROYECTO3_FK
go

if exists (select 1
            from  sysindexes
           where  id    = object_id('USUARIOSPROYECTO')
            and   name  = 'USUARIOSPROYECTO2_FK'
            and   indid > 0
            and   indid < 255)
   drop index USUARIOSPROYECTO.USUARIOSPROYECTO2_FK
go

if exists (select 1
            from  sysobjects
           where  id = object_id('USUARIOSPROYECTO')
            and   type = 'U')
   drop table USUARIOSPROYECTO
go

/*==============================================================*/
/* Table: CATEGORIADELAINCIDENCIA                               */
/*==============================================================*/
create table CATEGORIADELAINCIDENCIA (
   ID_INCIDENCIA        int                  not null,
   ID_CATEGORIAINCIDENCIA int                  not null,
   constraint PK_CATEGORIADELAINCIDENCIA primary key nonclustered (ID_INCIDENCIA, ID_CATEGORIAINCIDENCIA)
)
go

/*==============================================================*/
/* Index: CATEGORIAINCIDENCIA2_FK                               */
/*==============================================================*/
create index CATEGORIAINCIDENCIA2_FK on CATEGORIADELAINCIDENCIA (
ID_CATEGORIAINCIDENCIA ASC
)
go

/*==============================================================*/
/* Index: CATEGORIAINCIDENCIA_FK                                */
/*==============================================================*/
create index CATEGORIAINCIDENCIA_FK on CATEGORIADELAINCIDENCIA (
ID_INCIDENCIA ASC
)
go

/*==============================================================*/
/* Table: CATEGORIAINCIDENCIA                                   */
/*==============================================================*/
create table CATEGORIAINCIDENCIA (
   ID_CATEGORIAINCIDENCIA numeric(8)           identity,
   NOMBRE_CATEGORIAINCIDENCIA varchar(1024)        null,
   constraint PK_CATEGORIAINCIDENCIA primary key nonclustered (ID_CATEGORIAINCIDENCIA)
)
go

/*==============================================================*/
/* Table: COMENTARIOINCIDENCIA                                  */
/*==============================================================*/
create table COMENTARIOINCIDENCIA (
   ID_COMENTARIOINCIDENCIA numeric              identity,
   INCIDENCIA_COMENTARIO int                  not null,
   CREADOR_COMENTARIO   int                  not null,
   DETALLE_COMENTARIO   text                 null,
   FECHAHORA_COMENTARIOINCIDENCIA datetime             null,
   constraint PK_COMENTARIOINCIDENCIA primary key nonclustered (ID_COMENTARIOINCIDENCIA)
)
go

/*==============================================================*/
/* Index: COMENTARIO_INCIDENCIA_FK                              */
/*==============================================================*/
create index COMENTARIO_INCIDENCIA_FK on COMENTARIOINCIDENCIA (
INCIDENCIA_COMENTARIO ASC
)
go

/*==============================================================*/
/* Index: CREADORCOMENTARIO_FK                                  */
/*==============================================================*/
create index CREADORCOMENTARIO_FK on COMENTARIOINCIDENCIA (
CREADOR_COMENTARIO ASC
)
go

/*==============================================================*/
/* Table: ESTADOINCIDENCIA                                      */
/*==============================================================*/
create table ESTADOINCIDENCIA (
   ID_ESTADOINCIDENCIA  numeric              identity,
   NOMBRE_ESTADOINCIDENCIA varchar(128)         null,
   constraint PK_ESTADOINCIDENCIA primary key nonclustered (ID_ESTADOINCIDENCIA)
)
go

/*==============================================================*/
/* Table: INCIDENCIA                                            */
/*==============================================================*/
create table INCIDENCIA (
   ID_INCIDENCIA        numeric              identity,
   ESTADO_INCIDENCIA    int                  not null,
   RESPONSABLE_INCIDENCIA int                  not null,
   PROYECTO_INCIDENCIA  int                  not null,
   CREADOR_INCIDENCIA   int                  not null,
   TITULO_INCIDENCIA    varchar(62)          null,
   DETALLES_INCIDENCIA  varchar(128)         null,
   REPRODUBICIBILIDAD_INCIDENCIA varchar(62)          null,
   URGENCIA_INCIDENCIA  varchar(62)          null,
   SEVERIDAD_INCIDENCIA varchar(62)          null,
   FECHACREACION_INCIDENCIA datetime             null,
   ULTIMAMODIFICACION_INCIDENCIA datetime             null,
   PRIORIDAD_INCIDENCIA varchar(62)          null,
   SISTEMAOPERATIVO_INCIDENCIA varchar(62)          null,
   constraint PK_INCIDENCIA primary key nonclustered (ID_INCIDENCIA)
)
go

/*==============================================================*/
/* Index: ESTADODEINCIDENCIA_FK                                 */
/*==============================================================*/
create index ESTADODEINCIDENCIA_FK on INCIDENCIA (
ESTADO_INCIDENCIA ASC
)
go

/*==============================================================*/
/* Index: RESPONSABLILIDADINCIDENCIA_FK                         */
/*==============================================================*/
create index RESPONSABLILIDADINCIDENCIA_FK on INCIDENCIA (
RESPONSABLE_INCIDENCIA ASC
)
go

/*==============================================================*/
/* Index: INCIDENCIA_PROYECTO_FK                                */
/*==============================================================*/
create index INCIDENCIA_PROYECTO_FK on INCIDENCIA (
PROYECTO_INCIDENCIA ASC
)
go

/*==============================================================*/
/* Index: REPORTEINCIDENCIA_FK                                  */
/*==============================================================*/
create index REPORTEINCIDENCIA_FK on INCIDENCIA (
CREADOR_INCIDENCIA ASC
)
go

/*==============================================================*/
/* Table: PERMISO                                               */
/*==============================================================*/
create table PERMISO (
   ID_PERMISO           numeric              identity,
   NOMBRE_PERMISO       varchar(62)          null,
   constraint PK_PERMISO primary key nonclustered (ID_PERMISO)
)
go

/*==============================================================*/
/* Table: PROYECTO                                              */
/*==============================================================*/
create table PROYECTO (
   ID_PROYECTO          numeric              identity,
   RAIZ_PROYECTO        int                  null,
   NOMBRE_PROYECTO      varchar(128)         null,
   VISIBILIDAD_PROYECTO bit                  null,
   constraint PK_PROYECTO primary key nonclustered (ID_PROYECTO)
)
go

/*==============================================================*/
/* Index: SUBPROYECTO_FK                                        */
/*==============================================================*/
create index SUBPROYECTO_FK on PROYECTO (
RAIZ_PROYECTO ASC
)
go

/*==============================================================*/
/* Table: ROL                                                   */
/*==============================================================*/
create table ROL (
   ID_ROL               numeric              identity,
   ID_PERMISO           int                  not null,
   NOMBRE_ROL           varchar(64)          null,
   constraint PK_ROL primary key nonclustered (ID_ROL)
)
go

/*==============================================================*/
/* Index: PERMISOSDEROL_FK                                      */
/*==============================================================*/
create index PERMISOSDEROL_FK on ROL (
ID_PERMISO ASC
)
go

/*==============================================================*/
/* Table: USUARIO                                               */
/*==============================================================*/
create table USUARIO (
   ID_USUARIO           numeric              identity,
   USERNAME             varchar(62)          null,
   NOMBRES_USUARIO      varchar(62)          null,
   APELLIDOPATERNO_USUARIO varchar(62)          null,
   APELLIDOMATERNO_USUARIO varchar(62)          null,
   CORREO_USUARIO       varchar(62)          null,
   PASSWORD_USUARIO     varchar(62)          null,
   constraint PK_USUARIO primary key nonclustered (ID_USUARIO)
)
go

/*==============================================================*/
/* Table: USUARIOSPROYECTO                                      */
/*==============================================================*/
create table USUARIOSPROYECTO (
   ID_PROYECTO          int                  not null,
   ID_USUARIO           int                  not null,
   ID_ROL               int                  not null,
   constraint PK_USUARIOSPROYECTO primary key nonclustered (ID_PROYECTO, ID_USUARIO, ID_ROL)
)
go

/*==============================================================*/
/* Index: USUARIOSPROYECTO2_FK                                  */
/*==============================================================*/
create index USUARIOSPROYECTO2_FK on USUARIOSPROYECTO (
ID_PROYECTO ASC
)
go

/*==============================================================*/
/* Index: USUARIOSPROYECTO3_FK                                  */
/*==============================================================*/
create index USUARIOSPROYECTO3_FK on USUARIOSPROYECTO (
ID_USUARIO ASC
)
go

/*==============================================================*/
/* Index: USUARIOSPROYECTO_FK                                   */
/*==============================================================*/
create index USUARIOSPROYECTO_FK on USUARIOSPROYECTO (
ID_ROL ASC
)
go

alter table CATEGORIADELAINCIDENCIA
   add constraint FK_CATEGORI_CATEGORIA_INCIDENC foreign key (ID_INCIDENCIA)
      references INCIDENCIA (ID_INCIDENCIA)
go

alter table CATEGORIADELAINCIDENCIA
   add constraint FK_CATEGORI_CATEGORIA_CATEGORI foreign key (ID_CATEGORIAINCIDENCIA)
      references CATEGORIAINCIDENCIA (ID_CATEGORIAINCIDENCIA)
go

alter table COMENTARIOINCIDENCIA
   add constraint FK_COMENTAR_COMENTARI_INCIDENC foreign key (INCIDENCIA_COMENTARIO)
      references INCIDENCIA (ID_INCIDENCIA)
go

alter table COMENTARIOINCIDENCIA
   add constraint FK_COMENTAR_CREADORCO_USUARIO foreign key (CREADOR_COMENTARIO)
      references USUARIO (ID_USUARIO)
go

alter table INCIDENCIA
   add constraint FK_INCIDENC_ESTADODEI_ESTADOIN foreign key (ESTADO_INCIDENCIA)
      references ESTADOINCIDENCIA (ID_ESTADOINCIDENCIA)
go

alter table INCIDENCIA
   add constraint FK_INCIDENC_INCIDENCI_PROYECTO foreign key (PROYECTO_INCIDENCIA)
      references PROYECTO (ID_PROYECTO)
go

alter table INCIDENCIA
   add constraint FK_INCIDENC_REPORTEIN_USUARIO foreign key (CREADOR_INCIDENCIA)
      references USUARIO (ID_USUARIO)
go

alter table INCIDENCIA
   add constraint FK_INCIDENC_RESPONSAB_USUARIO foreign key (RESPONSABLE_INCIDENCIA)
      references USUARIO (ID_USUARIO)
go

alter table PROYECTO
   add constraint FK_PROYECTO_SUBPROYEC_PROYECTO foreign key (RAIZ_PROYECTO)
      references PROYECTO (ID_PROYECTO)
go

alter table ROL
   add constraint FK_ROL_PERMISOSD_PERMISO foreign key (ID_PERMISO)
      references PERMISO (ID_PERMISO)
go

alter table USUARIOSPROYECTO
   add constraint FK_USUARIOS_USUARIOSP_ROL foreign key (ID_ROL)
      references ROL (ID_ROL)
go

alter table USUARIOSPROYECTO
   add constraint FK_USUARIOS_USUARIOSP_PROYECTO foreign key (ID_PROYECTO)
      references PROYECTO (ID_PROYECTO)
go

alter table USUARIOSPROYECTO
   add constraint FK_USUARIOS_USUARIOSP_USUARIO foreign key (ID_USUARIO)
      references USUARIO (ID_USUARIO)
go

